package com.surfilter.massdata.spark.model;


import java.io.Serializable;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;

/**
 * 
 * 系统常量类
 * @author liuchen
 *
 */
public class DnsStatConsts implements Serializable{
	
	private static final long serialVersionUID = 1L;

	//public static final String ORG = BUConsts.ORG;
	//public static final String APP = BUConsts.APP;
	
	public static final int DAY_START_HOUR = 23;

    public static final String STATUS_TYPE_HOUR = "HOUR";
    public static final String STATUS_TYPE_DAYNPLUS = "DAYNPLUS";
    public static final String STATUS_SUCCESS = "SUCCESS";
    public static final String STATUS_FAIL = "FAIL";
    public static final String STATUS = "status";

    public static final String CACHEINFO_OP = "op";
    public static final String CACHEINFO_TYPE_HDFS = "hdfs";
    public static final String CACHEINFO_TYPE_ES = "es";
    public static final String CACHEINFO_TYPE_SQL = "sql";

    public static final String STATUS_CHECK_DAYNPLUS = "daynplus.jobtype";
    public static final String STATUS_CECHK_HOUR = "hour.jobtype";
    //浙江因为月报统计因此比江苏的排重任务多点
    public static final String STATUS_CHECK_JS_DAYNPLUS = "daynplus.js.jobtype";
    public static final String STATUS_CECHK_JS_HOUR = "hour.js.jobtype";
    //除了浙江和江苏这样的有DNS解析的管局任务配置清单
    public static final String STATUS_CHECK_COMMON_DAYNPLUS = "daynplus.dnscommon.jobtype";
    public static final String STATUS_CECHK_COMMON_HOUR = "hour.dnscommon.jobtype";
    //没有dns解析的小管局不需要太多的任务
    public static final String STATUS_CHECK_MINI_DAYNPLUS = "daynplus.mini.jobtype";
    
    public static final String STATUS_JOBTYPE_DELIMIT ="\\|";


    public static final String BUFFALO_JOBTYPE = "buffalo.jobtype";
    public static final String RUNNER = "runner";

    public static final String CLEANUP_TIMEOUT_HOUR = "cleanup.timeout.hour";
    public static final String CLEANUP_TIMEOUT_DAY = "cleanup.timeout.day";

    public static final int UNK_INT = -1;
    public static final String REDIS_PIPELINE_CACHE_SIZE = "surfilter.massdata.etl.redispipline.cachesize";
    
    // 泛域名写HDFS开关：true：开启，false：关闭
    public static final String EXDOMAIN_SWITCH = "surfilter.massdata.etl.exdomain.switch";
    
    // IP核查需要配置的ZK服务器
    public static final String PARAM_ZK_SERVER = "surfilter.massdata.zkserver";
    
    // ES索引保存多少天
    public static final String PARAM_ES_INDEX_KEEP_DAY = "surfilter.massdata.esindex.keep.day";

    // 短信告警的配置参数
    // 短信告警的发送短信消息地址
    public static final String PARAM_SMS_SEND_URL = "surfilter.massdata.sms.sendurl";
    
    // 短信告警的号码列表
    public static final String PARAM_SMS_PHONES = "surfilter.massdata.sms.phones";
    
    // 网站排名中，排除前缀或后缀网站规则
    public static final String TPD_PRE_OR_SUF_FIXES = "surfilter.massdata.tpd.preorsuf.fixes";
    
    // 疑似CDN数量配置：IP对应顶级域名的数据配置项
    public static final String PARAM_CDN_LIMIT = "surfilter.massdata.cdn.limit";
    
    // 主节点namenode的hostname
    public static final String PARAM_NAMENODE_HOSTNAME = "surfilter.massdata.namenode.hostname";
    
    public static final String TPD_PRE_OR_SUF_FIXES_PARAM = "surfilter.preorsuf.fixes.param";
    
    public static final String PROVINCIAL_SUBJECT_PRE_PARAM = "surfilter.subject.prefix.param";
    
    // Resources
    public static final String FILE_DOMAIN_SUFFIX = "domain-suffixes.xml";
    // 域名常见开头单词 用于筛选泛域名
    public static final String FILE_DOMAIN_WORDS = "domain-common-words.txt";
    

    // MRJob Name
    public static final String COMMON_COUNTER_JOB = "common_counter_job";
    public static final String CIP_DR_JOB = "cip_dr_job";
    public static final String DOMAIN_DR_JOB = "domain_dr_job";
    public static final String DOMAIN_VISIT_COUNTER_JOB = "domain_visit_stat_job";
    public static final String TPDOMAIN_DR_JOB = "tpdomain_dr_job";
    public static final String CIP_DIP_TPD_DR_JOB = "cip_dip_tpd_dr_job";
    public static final String BEHAVIOR_DR_JOB = "behavior_dr_job";
    public static final String TPDOMAIN_VISIT_COUNTER_JOB = "tpdomain_visit_stat_job";
    public static final String CIP_COUNT_STAT_JOB = "cip_count_stat_job";
    public static final String DOMAIN_COUNT_STAT_JOB = "domain_count_stat_job";
    public static final String TPDOMAIN_COUNT_STAT_JOB = "tpdomain_count_stat_job";
    public static final String COMMON_TOPN_JOB = "common_topn_job";
    public static final String CIP_DIFF_JOB = "cip_diff_job";
    public static final String DOMAIN_DIFF_JOB = "domain_diff_job";
    public static final String TPDOMAIN_DIFF_JOB = "tpdomain_diff_job";
    public static final String CIP_VISIT_STAT_JOB = "cip_visit_stat_job";
    
    public static final String TPDOMAIN_DETECT = "tpdomain_detect_job";
    
    //地市网民访问全国网站TOPN
    public static final String TPD_CIP_DR_JOB = "tpd_cip_dr_job";
    
    // 泛域名源数据
    public static final String EXDOMAIN_DT_DR_JOB = "exdomain_dt_dr_job";
    
    // 各个泛域名的个数：例如a.sina.com ，b.sina.com那么就是www.sina.com的个数为2
    public static final String EXDOMAIN_NUM_DR_JOB = "exdomain_num_dr_job";
    
    public static final String CIP_VISIT_EXTEND_JOB = "cip_visit_extend_job";
    
    public static final String MERGE_HISTORY_TO_ES_JOB = "merge_history_to_es_job";
    public static final String SUB_DOMAIN_COUNT_JOB = "subdomain_count_job";
    
	public static final String BUSS_JOBS_TYPE = "BUSS_JOBS";
	
    // 域名失效
    public static final String DOMAIN_VALID_JOB = "domain_valid_job";
    // 顶级域名失效
    public static final String TPDOMAIN_VALID_JOB = "topdomain_valid_job";
    
    // 关注网站
    public static final String PARAM_ATT_ETL_DR_REDUCER = "att.etl.dr.reducer";
    public static final String ATT_DR_JOB = "att_dr_job";
    public static final String ATT_VISIT_JOB = "att_visit_job";
    public static final String ATT_DB_FILE = "att_db_file";
    
    // 历史数据处理
    public static final String HIS_DOMAIN_HANDLE_JOB = "his_domain_handle_job";
    public static final String HIS_TPDOMAIN_HANDLE_JOB = "his_tpdomain_handle_job";
    public static final String HIS_TPDOMAIN_IP_SURVIVAL_HANDLE_JOB = "his_tpdomain_ip_survival_handle_job";
    
    // 历史数据统计处理
    public static final String HIS_DOMAIN_COUNT_JOB = "his_domain_count_job";
    public static final String HIS_TPDOMAIN_COUNT_JOB = "his_tpdomain_count_job";
    
    // 历史数据新增统计处理
    public static final String HIS_DOMAIN_NEW_JOB = "his_domain_new_job";
    public static final String HIS_TPDOMAIN_NEW_JOB = "his_tpdomain_new_job";
    
    // MRJob Constants
    public static final String ZHEJIANG = "1";
    public static final String SHENGWAI = "2";
    
    // 泛域名的redis Key
	public static final String EX_DOMAIN_REDIS_KEY = "EXDOMAIN";
	// 泛域名后缀  字段名
	public static final String EX_DOMAIN_SUFFIX_KEY = "SUFFIX";
	// 泛域名转化为的域名  字段名
	public static final String EX_DOMAIN_NAME_KEY = "DOMAIN";
	// 泛域名对应的IPS  字段名
	public static final String EX_DOMAIN_IPS_KEY = "IPS";
	
	public static final String EX_DOMAIN_DEFAULT_IP = "0.0.0.0";
	
	// 域名异常流量阀门的redis Key
	public static final String DM_DETECT_REDIS_KEY = "DMDETECT";
	
	public static final String DM_DETECT_THRESHOLD_KEY = "THRESHOLD";
	
	public static final String DM_DETECT_THRESHOLDPRE_KEY = "THRESHOLD_PER";
	
	// DNS 的来源地址
	public static final String PARAM_DNS_LOCAL_DIR = "surfilter.dns.local.dir";
	//DNS 备份地址
	public static final String PARAM_DNS_HDFS_BACKUP_DIR = "surfilter.dns.hdfs.backup.dir";
	
    
    // 网站类别未知
    public static final String UNKNOWN = "221";
    public static final String CHILD_UNKNOWN = "218";
    public static final String GUOWAI = "国外";
    public static final LongWritable COUNT_ONE = new LongWritable(1);
    public static final Text NULL_TEXT = new Text();
    public static final String PARAM_TIMEUNIT = "surfilter.timeunit.param";
    public static final String PARAM_TIMEFLOW = "surfilter.timeflow.param";
    public static final String PARAM_JOBTIME = "surfilter.jobtime.param";
    public static final String PARAM_TOPN_SIZE = "surfilter.top.size.param";
    public static final String PARAM_RAW_INPUT = "surfilter.raw.input.param";
    public static final String PARAM_DIFF_OBJECT = "surfilter.diff.object.param";
    public static final String PARAM_FAIL_REASON = "surfilter.fail.reason";
    
    public static final String PARAM_HISSTORAGE_TYPE = "surfilter.hisstorage.type.param";
    // DNS Stat Constants
    public static final String FILE_SEP = "\t";
    public static final String PATH_SEP = ",";
    public static final int DEFAULT_TOPN_SIZE = 100;
    public static final String CONFIG_PREFIXES = "mapreduce.multioutput.prefixes";
    public static final String PREFIX_OUTPUT_FILE = "multi.output.prefix.";
    public static final String NA_STR = "N/A";
    public static final String FIELD_SEP = "-";
    public static final String URL_PREFIX_HTTP = "http://";
    public static final String COLON = ":";
    public static final String PATH_DELIMITER = ",";
    // Log content
    public static final String ERROR_MRJOB_INITIALIZING = "Failed initializing MR job";
    public static final String ERROR_MRJOB_FAILED_REPLACE_OLD_DR_OUTPUT = "Failed replacing old DR data";
    public static final String ERROR_MRJOB_FAILED = "MR Job Failed";
    public static final String INFO_START_MRJOB = "Start MR Job ";
    // configuration
    public static final int ES_KEEP_CLIEN_NUM = 20;
    public static final int ES_WRITE_THRESHOLD = 1000;
    public static final String PARAM_MYSQL_OWL = "mysql.owl.url";
    public static final String PARAM_ES_SERVER = "surfilter.massdata.es";
    public static final String PARAM_IPDB_SERVER = "surfilter.massdata.ipdb";
    public static final String PARAM_ORACLE_SERVER = "surfilter.massdata.oracle";
    public static final String PARAM_MYSQL_SERVER = "surfilter.massdata.mysql";
    public static final String PARAM_REDIS_SERVER = "surfilter.massdata.redis";
    public static final String PARAM_ETL_DR_REDUCER = "etl.dr.reducer";
    public static final String PARAM_CIP_DIP_TPD_DR_REDUCER = "cipdiptpd.dr.reducer";
    public static final String PARAM_BEHAVIOR_DR_REDUCER = "behavior.dr.reducer";
    public static final String PARAM_CIP_DR_REDUCER = "cip.dr.reducer";
    public static final String PARAM_TOP_DOMAIN_DR_REDUCER = "topdomain.dr.reducer";
    public static final String PARAM_DOMAIN_DR_REDUCER = "domain.dr.reducer";
    public static final String PARAM_TOP_DOMAIN_SYNC_REDUCER = "topdomain.sync.reducer";
    public static final String PARAM_DOMAIN_SYNC_REDUCER = "domain.sync.reducer";
    public static final String PARAM_CIP_SYNC_REDUCER = "cip.sync.reducer";
    public static final String PARAM_TO_FIVE_ELEMENT_REDUCER = "etl.tofivelement.reducer";
    public static final String PARAM_FTP_SERVER_IP="etl.ftp.server.ip";
    public static final String PARAM_FTP_FILTER_NUMBER="etl.ftp.filter.number";
    public static final String PARAM_FTP_THREAD_NUMBER="etl.ftp.thread.number";
    public static final String PARAM_VISIT_HOUR_PROVINCE_IP="province.ip.visit.hour";
    public static final String PARAM_VISIT_DAY_PROVINCE_IP="province.ip.visit.day";
    public static final String PARAM_DAY_IDC_IP="idc.ip.visit.day";
    public static final String PARAM_DAY_CITY_IP="city.ip.visit.day";
    public static final String PARAM_LOADFILE_THREADS="surfilter.massdata.etl.loadfile.threads";
    public static final String PARAM_ES_DOMAIN_BATCH="surfilter.massdata.es.domain.batch";
    public static final String PARAM_ES_TOPDOMAIN_BATCH="surfilter.massdata.es.topdomain.batch";
    public static final String PARAM_ES_CLIENT_NUM="es.client.num";
    
    
    //add by dingzewen, hbase website visits table
    public static final String PARAM_HBASE_WV_TABLE_ISSAVE_KEY="surfilter.massdata.hbase.issave";
    public static final String PARAM_HBASE_WV_TABLE="surfilter.massdata.hbase.wv.table";
    public static final String HBASE_ZOOKEEPER_QUORUM="hbase.zookeeper.quorum";
    public static final String HBASE_ZOOKEEPER_PROPERTY_CLIENTPORT="hbase.zookeeper.property.clientPort";
    public static final String HBASE_MASTER="hbase.master";
    public static final String HBASE_CLIENT_RETRIES_NUMBER="hbase.client.retries.number";
    public static final String HBASE_REGIONSERVER_LEASE_PERIOD="hbase.regionserver.lease.period";
    public static final String HBASE_ZOOKEEPER_PROPERTY_MAXCLIENTCNXNS="hbase.zookeeper.property.maxClientCnxns";
    public static final String HBASE_WV_COLOMN_KEY="day";
    public static final String PARAM_HBASE_WV_TABLE_ISSAVE_VALUE="YES";
    

    
    
    public static final String PARAM_ATT_DR_REDUCER = "att.dr.reducer";

    public static final String TIME_DELIMITER = "-";
    public static final String INPUT_DATA_DELIMITER = "\t";
    // Config alias
    public static final String CONF_IN_PROV_TOPN = "site.province.ip.topnum";
    public static final String CONF_IN_PROV_RECORD_TOPN = "site.province.recorded.topnum";
    public static final String CONF_OUT_PROV_TOPN = "site.other.ip.topnum";
    public static final String CONF_GLOBAL_TOPN = "site.global.topnum";
    public static final String CONF_POPULAR_NETIZEN_TOPN = "popular.topn.netizen";
    public static final String CONF_TYPE_CIP_NETIZEN_TOPN = "type.cip.topn.netizen";
    public static final String CONF_VISIT_NETIZEN_TOPN = "industry.visit.topn.netizen";
    // Owl parameters' name
    public static final String GEN = "GEN";
    public static final String CRAWL = "CRAWL";
    public static final String ANALYZ = "ANALYZ";
    public static final String SYNC = "SYNC";

    // redis consts
    public static String REDIS_KEY_DELIMIT = ":";
    public static final String MR = "MR";
    public static final String DOT = ".";
    public static final String AT = "@";
    
    public static final String JOBSTATUS_INIT = "INIT";
	public static final String JOBSTATUS_GEN = "GEN";
	public static final String JOBSTATUS_CRAWL = "CRAWL";
	public static final String JOBSTATUS_ANALYZ = "ANALYZ";
	public static final String JOBSTATUS_SYNC = "SYNC";
	public static final String JOBSTATUS_SUCCEED = "SUCCEED";
	public static final String JOBSTATUS_FAILED = "FAILED";
	
	//IP检测，需要配置IP端过大的长度
	public static final String PARAM_IP_CHECK_SEG_MAX_LEN = "surfilter.ipcheck.seg.len.max";
	//IP检测，需要配置本省ID 这个配置项在etl等其他地方可用 用于区分省管局
	public static final String PARAM_SHENG_ID = "surfilter.massdata.shengid";
	
	//配置本省运营商报备单位编码 record by dingzewen   IP子系统
	public static final String PARAM_OPTOR_IDS = "surfilter.ipcheck.stard.filter.bbdw";
	//IP检测，需要配置信安的活跃资源es
	public static final String PARAM_ACTIVE_IP_ES = "surfilter.ipcheck.es";
	//IP检测，需要配置信安的活跃资源http port
	public static final String PARAM_ACTIVE_PORT_ES = "surfilter.ipcheck.es.http.port";
	//IP检测，需要配置定时启动时间
	public static final String PARAM_IP_CHECK_LAUNCH_TIME = "surfilter.ipcheck.launch.time";
	//IP检测，当前省份中国电信的isp_id
	public static final String PARAM_IP_CHECK_TELECOM_ISPID = "surfilter.ipcheck.telecom.ispid";
	//IP检测,当前省份中国移动的isp_id
	public static final String PARAM_IP_CHECK_MOBILE_ISPID = "surfilter.ipcheck.mobile.ispid";
	//IP检测，当前省份中国联通的isp_id
	public static final String PARAM_IP_CHECK_UNICOM_ISPID = "surfilter.ipcheck.unicom.ispid";
	//IP检测，当前省份中国铁通isp_id
	public static final String PARAM_IP_CHECK_RAILCOM_ISPID = "surfilter.ipcheck.railcom.ispid";
	//配一下省份
	public static final String JS_PROVINCE = "320000";
	public static final String ZJ_PROVINCE = "330000";
	public static final String SHANXI_PROVINCE = "140000"; //山西
	
	//配置dns原始数据清理天数和dns备份数据清理天数
	public static final String PARAM_DNS_RECOVERY_DAY = "surfilter.dns.recovery.day";
	public static final String PARAM_DNS_BACKUP_RECOVERY_DAY = "surfilter.dns.backup.recovery.day";
	
	//需要过滤掉114的IP
	public static final String PARAM_114_IPS = "surfilter.114.ips";
	public static final String PARAM_FILTER_CIPS = "surfilter.filter.cips";
	
	
	//海量数据分析数据源是否是DNS日志
	public static final String PARAM_DNSLOG_SWITCH = "surfilter.massdata.dnslog.switch";
	//海量数据分析入库选择：oralce or mysql
	public static final String PARAM_DB_CHOOSE_SWITCH = "surfilter.massdata.db.switch";
	public static final String PARAM_DB_CHOOSE_MYSQL = "2";
	public static final String PARAM_DB_CHOOSE_ORACLE = "1";
	
	//海量数据存ES副本数配置
	public static final String PARAM_ES_REPLICAS_NUM = "surfilter.massdata.es.replicas.num";
	
	//网站排名TOPN可配
	public static final String PARAM_RANK_TOP_N = "surfilter.massdata.rank.topn";
	
	//判定泛域名域值
	public static final String EX_DOMAIN_JUDGE_NUM = "surfilter.massdata.exdomain.judge.num";
	
	//判定泛域名域值
	public static final String EX_DOMAIN_MAX_LIMIT = "surfilter.massdata.exdomain.max.limit";
	
	
	//判定数据存储时长
	public static final String HDFS_RAW_DATA_KEEP_DAYS = "surfilter.massdata.hdfs.raw.keep.days";
	
	//分布式缓存软链接文件名
	public static final String TPD_CITY_ZT_PRO_JR_SOFT_LINK_NAME = "tczpjsln";
	
	//活跃资源debug_xml本地路径
	public static final String ACTIVE_RESOURCE_DEBUG_DIR = "surfilter.massdata.ar.debug.xml.dir";

    public static enum DEBUG_INFO {
        REDIS_TIME_MS, ORACLE_CONN_TIME_MS, DIFF
    }

    public static enum AreaBound {
        IN_PROVINCE(0), OUT_PROVINCE(1), OUT_COUNTRY(2);
        private int code = 0;

        private AreaBound(int code) {
            this.code = code;
        }

        public int getCode() {
            return this.code;
        }
    }

    public static enum DupRmFileType {
        CIP("cip", "cip"), DOMAIN("dmn", "domain"), TOPDOMAIN("tpd", "topdomain"), CIP_DIP_TOPDOMAIN(
                "cdt", "cip_dip_topdomain"), CIP_INDUS("cin", "cip_indus"),
                EX_DOMAIN_DT("edd", "ex_domain_dt"),
                EX_DOMAIN_NUM("edn", "ex_domain_num"),
                TPD_CIP("tpdCip", "tpd_cip");
        private String prefix;
        private String name;

        private DupRmFileType(String prefix, String name) {
            this.prefix = prefix;
            this.name = name;
        }

        public String getPrefix() {
            return prefix;
        }

        public String getName() {
            return this.name;
        }

        public static DupRmFileType getFromPrefix(String prefix) {
            for (DupRmFileType dupRmFileType : DupRmFileType.values()) {
                if (dupRmFileType.getPrefix().equals(prefix))
                    return dupRmFileType;
            }
            return null;
        }
    }

    public static enum JobTypeName {
        ETL, 
        BUSS_JOBS, 
        CIP_COUNT,
        CIP_VISIT, 
        DOMAIN_COUNT, 
        DOMAIN_VISIT, 
        TPDMN_COUNT, 
        TPDMN_VISIT, 
        BEHAVIOR,
        // Specially for Oracle
        TPDMN_VISIT_HOUR, 
        BEHAVIOR_COUNT, 
        BEHAVIOR_TOPN, 
        BEHAVIOR_TOPN_POP, 
        TPDMN_INDUS, 
        CIP_EXTEND, 
        CLEAN,
        
        VIRTUAL_HOST, 
        ATT_STAT ,
        ATT_VISIT, 
        HIS_HANDLE, 
        HIS_COUNT, 
        HIS_STORAGE, 
        AGGREGA,
        //记住jobtypename相互之间不能存在名称包含，比如CIP_COUNT和TPD_CIP_COUNT就不行
        TPD_CIP_R_COUNT,
        TPD_CIP_RANK
    }
    
    public static enum HisStorageType{
    	SUB_DOMAIN("0","SD"),
    	DIP_DETAIL("1","DD"),
    	DOMAIN_ES("2","DE"),
    	TPDOMAIN_ES("3","TE");
    	
    	private String value;
    	private String simpleName;
    	
    	HisStorageType(String value,String simpleName){
    		this.value = value;
    		this.simpleName = simpleName;
    	}
    	public String getValue() {
    		return value;
    	}
    	public String getSimpleName() {
    		return simpleName;
    	}
    	
    	public static HisStorageType fetchEnum(String value){
    		HisStorageType hisStorageType = null;
    		if (SUB_DOMAIN.getValue().equals(value)) {
    			hisStorageType = SUB_DOMAIN;
    		} else if (DIP_DETAIL.getValue().equals(value)) {
    			hisStorageType = DIP_DETAIL;
    		} else if (DOMAIN_ES.getValue().equals(value)) {
    			hisStorageType = DOMAIN_ES;
    		} else if (TPDOMAIN_ES.getValue().equals(value)) {
    			hisStorageType = TPDOMAIN_ES;
    		}
    		return hisStorageType;
    	}
    }
    

    public static class IPExField {
        //目前没有用到所有字段，内存优化暂时屏蔽，勿删
    	/*private static final int _SIZE = 29;
        public static int IP = 0;// IP地址
        public static int ID = 1;// IP详细信息主键
        public static int BEGIN_IP = 2;// 起始IP
        public static int END_IP = 3;// 终止IP，终止IP与起始IP相等代表一个ip地址
        public static int ISP_ID = 4;// 所属接入商ID：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int IP_TYPE = 5;// 类型：静态，动态，未知
        public static int OPERATORS_ID = 6;// 运营商ID：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int OPERATORS_NAME = 7;// 运营商名称：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int OPERATORS_JYXKZBH = 8;// 运营商经营许可证编号
        public static int ISP_NAME = 9;// 所属接入商名称：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int ISP_JYXKZBH = 10;// 所属接入商经营许可证编号
        public static int PROVINCE = 11;// 所在省ID
        public static int CITY = 12;// 所在市ID
        public static int COUNTY = 13;// 所在县ID
        public static int ADDR = 14;// 详细地址
        public static int HOUSE_CODE = 15;// "机房编号,导入时Excel中的机房编号，机房编号格式为XXXXXXXX前4位为备案系统分配的企业账号ID后四位数字；后4位为各企业机房编号，递增的顺序生成。"
        public static int HOUSE_NAME = 16;// 机房名称
        public static int IP_USED_TYPE = 17;// 分配方式（IP地址使用方式：分配且使用，预留，自用，自带）
        public static int BANDWIDTH = 18;// 带宽(MB)
        public static int USING_UNIT_NAME = 19;// 使用单位名称
        public static int USING_UNIT_LINKMAN = 20;// 使用单位联系人姓名
        public static int USING_UNIT_TEL = 21;// 使用单位联系人电话
        public static int USING_UNIT_TYPE = 22;// 使用单位用户类型
        public static int USING_UNIT_INDUSTRY_TYPE = 23;// 使用单位行业类型
        public static int REMARK = 24;// 备注
        public static int SOURCE_UNIT = 25;// 来源单位名称
        public static int SUFFIX = 26;// 域名后缀
        public static int CITY_OP = 27;
        public static int SUM = 28;*/
        
        private static final int _SIZE = 16;
        public static int IP = 0;// IP地址
        public static int BEGIN_IP = 1;// 起始IP
        public static int END_IP = 2;// 终止IP，终止IP与起始IP相等代表一个ip地址
        public static int ISP_ID = 3;// 所属接入商ID：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int IP_TYPE = 4;// 类型：静态，动态，未知
        public static int OPERATORS_ID = 5;// 运营商ID：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int OPERATORS_NAME = 6;// 运营商名称：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int ISP_NAME = 7;// 所属接入商名称：以工信部颁布的基础运营商、IDC、ISP报备单位企业名单为准
        public static int ISP_JYXKZBH = 8;// 所属接入商经营许可证编号
        public static int PROVINCE = 9;// 所在省ID
        public static int CITY = 10;// 所在市ID
        public static int COUNTY = 11;// 所在县ID
        public static int HOUSE_CODE = 12;// "机房编号,导入时Excel中的机房编号，机房编号格式为XXXXXXXX前4位为备案系统分配的企业账号ID后四位数字；后4位为各企业机房编号，递增的顺序生成。"
        public static int HOUSE_NAME = 13;// 机房名称
        public static int USING_UNIT_TYPE = 14;// 使用单位用户类型
        public static int SUM = 15;

        public static int size() {
            return _SIZE;
        }
    }

    public static class DomainExField {
    	private static final int _SIZE = 8;
        public static int TOP_DOMAIN = 0;//顶级域名
        public static int SITE_NAME = 1;
        public static int REGISTRAR_NAME = 2;
        public static int RECORD_STATE = 3;
        public static int CN_DOMAIN_NAME = 4;
        public static int LICENSE_KEY = 5;
        public static int IS_BLACK = 6;
        public static int PARENT_INDUSTRY_TYPE = 7;
        
        public static int size() {
            return _SIZE;
        }
    }
}

